/* 
注册功能
1. 给按钮注册点击事件
2. 手机表单的数据 serialize 快速收集表单数据
3. 非空校验/判断
4. 发送请求，axios别名
4.1 aysnc + await + try catch
4.2 一旦请求成功
4.2.1 提示用户
4.2.2 跳转到登录页面

*/

document.querySelector('#btn-register').addEventListener('click', async () => {
    const form = document.querySelector('.register-form')
    // hash: true 表示收集为对象，empty: true 表示收集空值
    // hash: false 表示收集为数组，empty: false 表示不收集空值
    const data = serialize(form, { hash: true, empty: true }) 
    // 非空判断，可以先拆解一下值
    const { username,password} = data 
    if( !username.trim() || !password.trim() ){
        return showToast('请输入用户名或密码')
    }
    else if (password.length < 6) {
        return showToast('密码长度不能小于6位')
    }
    else if (username.length < 8) {
        return showToast('用户名长度不能小于8位')
    }
    try {
        const res = await axios.post('/register',data)
        console.log(res);
        // 根据业务状态码判断，code === 10000 注册成功，其他代表注册失败
        if (res.code === 10000) {
            showToast('注册成功')
            // 注册成功后，设置延时跳转
            setTimeout(() => {
                // 跳转时，需要根据js所在的html页面（文档）进行跳转，而不是根据js文件所在位置
                location.href = './login.html'
            },800)
        }
        else {
            // 请求成功，但是业务失败（用户名 or 密码 出现错误）
            showToast(res.message)
        }
        
    } catch (error) {
        showToast('注册失败')
    }
})
